﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace console.demo
{
    public class FileStreamDemo
    {
        public FileStreamDemo() { }
        public void get()
        {
            /**
             * FileMode:枚举定义了各种打开文件的方法,fileMode枚举的成员有:
             * append:打开一个已有的文件.并将光标放置在文件的末尾,如果文件不存在,则创建文件
             * create:创建一个新的文件,如果文件已经存在.则删除旧文件,然后创建新的文件
             * createNew:指定操作系统应创建一个新的文件,如果文件已经存在,则抛出异常
             * openOrCreate:指定操作系统应打开一个已有的文件,如果文件不存在,则用指定的名称创建一个新的文件打开
             * truncate:打开一个已有的文件,文件一旦打开,就将被截断为0字节大小,然后我们可以向文件写入全新的数据,但是保留文件的初始创建日期,如果文件不存在,则抛出异常
             * 
             * FileAcsess:枚举成员有read,readwrite,write
             * FileShare:
             * inheritable:允许文件句柄可由子进程继承,win32不支持此功能
             * none:谢绝共享当前文件
             * read:允许随后打开文件读取
             * readwrite:允许随后打开文件读取或写入
             * write:允许随后打开文件2写入
             * delete:允许岁数删除文件
             */
            FileStream fileStream = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite);
            for (int i = 1; i < 10; i++)
            {
                fileStream.WriteByte((byte)i);
            }
            fileStream.Position = 0;
            for (int i = 0; i < 10; i++)
            {
                Console.Write(fileStream.ReadByte() + " ");
            }
            fileStream.Close();
            Console.ReadKey();
        }
    }
}
